var express = require('express')
var router = express.Router()
var connection = require('../db/sql')
var user = require('../db/UserSql')


//引入 短信sdk的包
var QcloudSms = require("qcloudsms_js")

//手机密码登录接口
router.post('/api/login', function (req, res, next) {

    //后端接收前端传递过来的值
    let params = {
        userTel: req.body.userTel,
        userPwd: req.body.userPwd
    };

    //查询用户手机号是否存在
    connection.query(user.queryUserTel(params), function (err, results) {
        //手机号存在
        if (results.length > 0) {

            connection.query(user.queryUserPwd(params), function (err, result) {
                //密码正确
                if (result.length > 0) {
                    res.send({
                        code: 200,
                        data: {
                            success: true,
                            data: result[0],
                            msg: '登陆成功'
                        },
                    })
                } else {
                    //密码不正确
                    res.send({
                        code: 302,
                        success: false,
                        msg: '密码不正确'
                    })
                }
            })

        } else {
            //手机号不存在
            res.send({
                code: 301,
                success: false,
                msg: '手机号不存在'
            })
        }
    })
})


//手机短信验证码登录接口
router.post('/api/code', function (req, res, next) {
    let tel = req.body.phone
    // 短信应用SDK AppID
    var appid = 1400187558;  // SDK AppID是1400开头

    // 短信应用SDK AppKey
    var appkey = "dc9dc3391896235ddc2325685047edc7";

    // 需要发送短信的手机号码
    var phoneNumbers = [tel];

    // 短信模板ID，需要在短信应用中申请
    var templateId = 285590;  // NOTE: 这里的模板ID`7839`只是一个示例，真实的模板ID需要在短信控制台中申请

    // 签名
    var smsSign = "三人行慕课";  // NOTE: 这里的签名只是示例，请使用真实的已申请的签名, 签名参数使用的是`签名内容`，而不是`签名ID`

    // 实例化QcloudSms
    var qcloudsms = QcloudSms(appid, appkey);

    // 设置请求回调处理, 这里只是演示，用户需要自定义相应处理回调
    function callback(err, ress, resData) {
        if (err) {
            console.log("err: ", err);
        } else {
            res.send({
                code: 200,
                data: {
                    success: true,
                    data: ress.req.body.params[0]
                }
            })
        }
    }

    var ssender = qcloudsms.SmsSingleSender();

    // 短信上面的随机验证码
    var params = [Math.floor(Math.random() * (9999 - 1000)) + 1000];
    ssender.sendWithParam(86, phoneNumbers[0], templateId,
        params, smsSign, "", "", callback);  // 签名参数不能为空串
})

//增加一个用户
router.post('/api/addUser', function (req, res, next) {
    let params = {
        userTel: req.body.phone
    }

    //查询用户是否存在
    connection.query(user.queryUserTel(params), function (error, results) {
        if (error) throw error;

        if (results.length > 0) {
            res.send({
                code: 200,
                data: {
                    success: true,
                    msg: '登录成功',
                    data: results[0]
                }
            })
        }
        else {
            //不存在，新增一条数据
            connection.query(user.insertData(params), function (err, result) {
                //查找用户
                connection.query(user.queryUserTel(params), function (e, r) {
                    res.send({
                        code: 200,
                        data: {
                            success: true,
                            msg: '登录成功',
                            data: r[0]
                        }
                    })
                })
            })
        }

    })


})

//注册接口
router.post('/api/register', function (req, res, next) {
    let params = {
        userTel: req.body.phone,
        userPwd: req.body.pwd
    }


    connection.query(user.queryUserTel(params), function (error, results) {
        if (error) throw error;

        if (results.length > 0) {
            res.send({
                code: 200,
                data: {
                    success: true,
                    msg: '登录成功',
                    data: results[0]
                }
            })
        }
        else {
            //不存在，新增一条数据
            connection.query(user.insertData(params), function (err, result) {
                //查找用户
                connection.query(user.queryUserTel(params), function (e, r) {
                    res.send({
                        code: 200,
                        data: {
                            success: true,
                            msg: '登录成功',
                            data: r[0]
                        }
                    })
                })
            })
        }

    })

})


//查询用户是否存在
router.post('/api/selectUser', function (req, res, next) {

    let params = {
        userTel: req.body.phone,

    }

    //查询用户是否存在
    connection.query(user.queryUserTel(params), function (error, results) {
        if (results.length > 0) {
            res.send({
                code: 200,
                data: {
                    success: true
                }

            })
        } else {
            res.send({
                code: 0,
                data: {
                    success: false,
                    msg: '此用户不存在'
                }
            })
        }
    })

})

//修改密码接口
router.post('/api/recovery', function (req, res, next) {
    let params = {
        userTel: req.body.phone,
        userPwd: req.body.pwd,
    }

    //查询用户是否存在
    connection.query(user.queryUserTel(params), function (error, results) {

        //某一条记录数id
        let id = results[0].id
        let pwd = results[0].pwd
        connection.query(`update user set pwd=replace(pwd,'${pwd}','${params.userPwd}') where id= ${id}`, function (err, result) {

            res.send({
                code: 200,
                data: {
                    success: true,
                    msg: '修改成功'
                }
            })
        })
    })

})

module.exports = router
